package recomendacaoservidor.classes;

import java.sql.Connection;
import java.util.List;
import recomendacaoservidor.dao.Conexao;
import recomendacaoservidor.dao.QuestaoDAO;

/**
 * @author Marcelo, Jefferson
 */
public class Questionario {
    
    public Questao getProximaQuestao(List<Questao> questoes) throws Exception{
        int tamanho = questoes.size();
        Connection conexao = Conexao.getConexao();
        Questao questao = null;
        try{
            QuestaoDAO qDAO = new QuestaoDAO(conexao);
            int quantQuestoes = qDAO.getQuantidadeQuestoes();

            if (tamanho == quantQuestoes){
                questao = null;
            }else
            if (tamanho < 1 || tamanho > quantQuestoes ){
                throw new Exception("Tamanho fora do padrão!");
            }else{
                // pega proxima questao do banco e devolve
                questao = qDAO.getProximaQuestao(tamanho, questoes);
            }
        }
        finally{
            if(conexao != null) conexao.close();
        }
        return questao;
    }
    
    public boolean isFinish(int numQuestoes) throws Exception{
        Connection conexao = Conexao.getConexao();
        QuestaoDAO questaoDAO = new QuestaoDAO(conexao);
        return numQuestoes >= questaoDAO.getQuantidadeQuestoes();
    }
    
    public Servidor getServidorRecomendado(List<Questao> questoes) throws Exception{
        Servidor servidor = null;
        int idAplicacao = questoes.get(2).getAlternativa(0).getId();
        int idLink = questoes.get(3).getAlternativa(0).getId();
        Connection conexao = Conexao.getConexao();
        QuestaoDAO questaoDAO = new QuestaoDAO(conexao);
        servidor = questaoDAO.getServidor(idAplicacao);
        servidor.setLink_recomendado(questaoDAO.getLink(idLink));
        return servidor;
    }
}
